package com.rlyy.basic.trace;

import com.rlyy.common.param.LinkTrace;

/**
 * 链路追踪接口
 *
 * @author yuanqinglong
 * @since 2021/10/12 15:11
 */
public interface ITraceProcess {


    /**
     * 跟踪
     *
     * @param traceCombination 跟踪组合
     * @return {@link LinkTrace}
     */
    LinkTrace tracking(TraceCombination traceCombination);


    /**
     * 同步保存记录
     *
     * @param linkTrace 链接跟踪
     */
    default void syncPrintTracking(LinkTrace linkTrace){}

    /**
     * 异步保存记录
     *
     * @param linkTrace 链接跟踪
     */
    default void asyncPrintTracking(LinkTrace linkTrace){}


}
